﻿namespace School.Entities
{
    #region Salary
    /**************************************************************
     * Клас, якого не має в таблиці БД
     * дані класу формуються при розрахунку зарплати
     * на основі занесених даних різних таблиць.
     * ***********************************************************/
    public partial class Salary
    {
        private string _employeeShortName;      //ПІБ працівника
        private double _employeeCharge;         //Нараховані кошти
        private double _employeeUnCharge;       //Утримано з працівника
        private double _employeeTotalSalary;    //До видачі на руки

        public Salary() { }
        public Salary(string employeeShortName, double employeeCharge, 
                      double employeeUnCharge, double employeeTotalSalary)
        {
            EmployeeShortName   = EmployeeShortName;
            EmployeeCharge      = employeeCharge;
            EmployeeUnCharge    = employeeUnCharge;
            EmployeeTotalSalary = employeeTotalSalary;
        }

        public string EmployeeShortName
        {
            get { return _employeeShortName; }
            set { _employeeShortName = value; }
        }

        public double EmployeeCharge
        {
            get { return _employeeCharge; }
            set { _employeeCharge = value; }
        }

        public double EmployeeUnCharge
        {
            get { return _employeeUnCharge; }
            set { _employeeUnCharge = value; }
        }

        public double EmployeeTotalSalary
        {
            get { return _employeeTotalSalary; }
            set { _employeeTotalSalary = value; }
        }

    }

    #endregion

    #region User
    /*****************************************************************
     * Розширюємо клас користувача User. Для зручності
     * користування сформуємо деякі властивості з існуючих даних
     * ***************************************************************/
    public partial class User
    {
        //Повертає повне ПІП
        public string FullName
        {
            get
            {
                return this.Name3 + " " + this.Name1 + " " + this.Name2;
            }
        }
    
        //Повертає Прізвище та ініціали
        public string ShortName
        {
            get
            {
                string[] names = this.FullName.Split(' ');
                return names[0] + " " + names[1][0] + ". " + names[2][0] + ".";
            }
        }
    }
    #endregion

    #region AuthentificatedUserInfo
    /*******************************************************
     * Клас, який використовується при реалізації
     * безпеки. Містить дані, що зберігаються браузером
     * під час роботи з додатком
     * *****************************************************/
    public class AuthentificatedUserInfo
    {
        public AuthentificatedUserInfo()
        {
        }

        public AuthentificatedUserInfo(User user)
        {
            ID = user.UserID;
            Login = user.Login;
        }

        public int ID { set; get; }
        public string Login { set; get; }

    }

    #endregion
}